home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 25
/
AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Updates
/
PowerPC
/
PPCLibEMU_UPD
/
history
next >
Wrap
Text File
|
2000-05-16
|
14KB
|
282 lines
ppc.library emulation history
=============================
(kern): changes are relevant for PowerUp kernel emulation only
(lib): changes are relevant for M68k library only
- 0.7d / ppc.library 46.25 (22.02.2000)
o Now PPCINFOTAG_CPUPLL should finally be correct. I'm no longer
calculating anything but I'm just taking the PLL code from HID1,
like original PowerUp does (thanks to Harry Sintonen for pointing
this out). The PLL code bug in the GetAttr() kernel function is
also emulated.
- 0.7c / ppc.library 46.24 (11.01.2000)
o (lib) Ok, mea culpa. There *are* PPC boards with LC040 out, so I can't
use the FPU on the M68k side. Fixed GetAttrs()/PPCINFOTAG_CPUPLL again.
o (lib) PPCGetAttrs() will always return a result, not only when
ti_Data is 0.
- 0.7b / ppc.library 46.23 (07.01.2000)
o PPCAttrs()/PPCGetAttr() PPCINFOTAG_CPUPLL returns the correct pll code
now and now longer the calculated pll * 1000000 directly.
o Fixed crash when starting ELF objects from Workbench.
o Library needs a working M68k FPU now (no EC040/EC060).
- 0.7a / ppc.library 46.22 (13.12.1999)
o Problems with launching asynchronous PPC threads from an asynchronous
PPC task solved (AmigaAmp).
o Fixed PPCFindTask(), which crashed when a task was not found (Frogger,
no audio)!
- 0.7 / ppc.library 46.21 (12.12.1999)
o Source is included in release. Make all years 4-digit.
o Asynchronous PPC tasks always had an invalid current directory and
PROGDIR. This was the main reason that for example MAME (and hope-
fully many others) didn't work. Now the parent PROGDIR will be
passed to the asynchronous task.
o (kern) PPCAllocVec/AllocMem() return 32-byte aligned memory again.
Since V15 the AllocVecPPC function from WarpOS does only guarantee
8-byte alignment, because memory is always from a pool, so there
are no cache line problems - but maybe PowerUp software could get
annoyed by this fact.
- 0.6g / ppc.library 46.20 (06.12.1999)
o (kern) PPCLoadObject(), PPCLoadObjectTagList(), PPCUnLoadObject() and
PPCCreateTask() are supported. Generally they will only call the
appropriate M68k function, but the kernel version of PPCCreateTask()
has an additional PC argument, which allows to spawn threads from the
current task.
o (kern) PPCprintf() with some limitations. No float or long long
support. Strings are limited to 1000 chars.
- 0.6f / ppc.library 46.19 (16.05.1999)
o (kern) PPCAllocPooled() calls PPCAllocVecPooled() and PPCFreePooled()
call PPCFreeVecPooled(), which saves some space.
- 0.6e / ppc.library 46.18 (14.05.1999)
o (kern) PowerUp task priority is converted into a WarpOS nice-value,
by using the simple formula: NICE = -PRI (not nice, but it works ;)
o (kern) PPCSetTaskAttr() PPCTASKINFOTAG_NAME is illegal.
o (lib) New function PPCSetTaskAttrs(). Supported tags:
PPCTASKINFOTAG_PRIORITY, PPCTASKTAG_EXTUSERDATA, PPCTASKINFOTAG_INPUTHANDLE,
PPCTASKINFOTAG_OUTPUTHANDLE and PPCTASKINFOTAG_ERRORHANDLE.
- 0.6d / ppc.library 46.17 (13.05.1999)
o MEMF_NOCACHEPPC,MEMF_NOCACHEM68K,MEMF_WRITETHROUGHPPC and
MEMF_WRITETHROUGHM68K are supported for PPCAllocVec(), PPCAllocMem()
and PPCCreatePool() (M68k and PPC). Ok... not really supported, but
emulated by using Chip-RAM. :)
o PPCGetAttrs(M68k) and PPCGetAttr(PPC) return 0x57415250 ('WARP') for
PPCINFOTAG_EMULATION (=0x8001f0ff), which allows a program to distinguish
the emulation library from the original.
o (lib) PPCCreateTask(): Don't allocate new memory for a second PPC task
invocation with the same ELF object. Only PROGBITS sections are reloaded
from disk to ensure data consistency. NOBITS sections are simply cleared.
o (lib) ELF sections are already loaded and relocated on PPCLoadObject().
This guarantees that PPCGetObjectAttrs() works as expected before
PPCCreateTask() was called.
o (lib) PPCRead/Write/Byte/Word/Long() flush the data cache on PPC side.
PPCWriteLongFlush() additionally invalidates the PPC instruction cache.
o (lib) Fix for SAS/C HunkObj-format, which uses the illegal version 0
in e_ident[EI_VERSION].
o (kern) New functions: PPCReadByte,PPCReadWord,PPCReadLong,PPCWriteByte,
PPCWriteWord and PPCWriteLong.
- 0.6c / ppc.library 46.16 (23.04.1999)
o (lib) Enforcer hit fixed, when library is opened by a program for the
first time.
- 0.6b / ppc.library 46.15 (18.04.1999)
o (lib) Alloc/Free functions call the appropriate PPC-functions now,
by doing a context-switch. This ensures that the memory functions
on the PPC- and on the 68k-side behave exactly the same.
o (lib) Support for pooled memory: PPCAllocPooled(),PPCFreePooled(),
PPCAllocVecPooled(),PPCFreeVecPooled(),PPCCreatePool(),PPCDeletePool().
- 0.6a / ppc.library 46.14 (14.04.1999)
o (kern) PPCFindTask() returns PowerUp TaskObject instead WarpOS TaskPPC.
o (kern) PPCSignal() expects PowerUp TaskObject instead WarpOS TaskPPC.
- 0.6 / ppc.library 46.13 (11.04.1999)
o This version of the emulation library REQUIRES powerpc.library V15!
o (lib) MPSemaphore protection of library base caused a wrong Lib-OpenCnt,
which had the effect that the 0.5d library could never be expunged.
o (kern) The optional PPC MsgPort was not deleted on task exit.
o (kern) Pooled memory, as introduced by WarpOS V4, is supported. The
dummy functions are replaced by real ones: PPCAllocPooled(),
PPCAllocVecPooled(),PPCCreatePool(), PPCDeletePool(),PPCFreePooled(),
PPCFreeVecPooled().
o (kern) PPCFindName(), PPCFindNameSync().
o (kern) Semaphore functions: PPCAttemptSemaphore, PPCAttemptSemaphoreByName,
PPCAttemptSemaphoreShared, PPCCreateSemaphore, PPCDeleteSemaphore,
PPCObtainSemaphore, PPCObtainSemaphoreByName, PPCObtainSemaphoreShared,
PPCReleaseSemaphore.
o (kern) Cache support: PPCCacheFlush, PPCCacheFlushAll, PPCCacheInvalid.
o (kern) PPCRawDoFmt().
- 0.5d / ppc.library 46.12 (10.04.1999)
o The first try of the PowerUp Message System Emulation seems to be working!
Currently all messages and message ports are allocated in Chip-RAM and
the performance is some magnitudes behind the original ppc.library,
but it ran successfully through all tests (e.g. msg2, msg2old, msg3,
msg5 and msg7 by Ralph Schmidt - the other two have bugs).
The code is already prepared to run in Fast-RAM, which I might try
in a future release.
o (kern) PowerUp Message System supported functions:
PPCCreatePort(), PPCDeletePort(), PPCObtainPort(), PPCReleasePort(),
PPCWaitPort(), PPCCreateMessage(), PPCDeleteMessage(), PPCGetMessage(),
PPCGetMessageAttr(), PPCReplyMessage(), PPCSendMessage().
o (lib) PowerUp Message System supported functions:
PPCCreatePort(), PPCDeletePort(), PPCObtainPort(), PPCReleasePort(),
PPCWaitPort(), PPCCreateMessage(), PPCDeleteMessage(), PPCGetMessage(),
PPCGetMessageAttr(), PPCReplyMessage(), PPCSendMessage().
o (lib) PPCCreateTask():
PPCTASKTAG_INPUT/OUTPUT/ERRORHANDLE overrule NP_xxx tags. It was the
other way around before.
New PPCCreateTask() tags: PPCTASKTAG_STACKSIZE, STARTUP_MSG,
STARTUP_MSGDATA, STARTUP_MSGLENGTH, STARTUP_MSGID, MSGPORT.
o (lib) PPCCreateTask() supports asynchronous PPC tasks.
o (lib) PPCDeleteTask() - untested.
o (lib) PPCGetTaskAttrs(). New tags: PPCTASKINFOTAG_TASK, VALUEPTR,
NAME, PRIORITY, STACKSIZE, INPUTHANDLE, OUTPUTHANDLE, ERRORHANDLE,
ELFOBJECT, STARTUP_MSG, STARTUP_MSGDATA, STARTUPMSG_LENGTH,
STARTUP_MSGID, STARTUP_MSGPORT, SIGALLOC, SIGWAIT, SIGRECVD,
WAITFINISHTASK. The hook and PPC-registers are not supported. Most
tags are untested.
o (kern) Startup code for PPC tasks creates a PPCMsgPort on demand (tag
PPCTASKTAG_MSGPORT). Cleanup code replies the startup message (tag
PPCTASKTAG_STARTUP_MSG).
o (kern) PPCGetTaskAttr(). New tags supported: PPCTASKTAG_STARTUP_MSG,
PPCTASKTAG_STARTUP_MSGDATA, PPCTASKTAG_STARTUP_MSGLENGTH,
PPCTASKTAG_STARTUP_MSGID and PPCTASKTAG_MSGPORT.
o (lib) PPCCacheInvalidE() and PPCCacheTrashE(). Fixed some bugs from
the original ppc.library in these functions.
o (lib) When debugging mode for the library is enabled, the names of
still unimplemented 68k-functions will be displayed.
- 0.5c / ppc.library 46.11 (20.03.1999)
o Removed PPCAlert(), PPCPutMessage() and PSYSCALL_xxx(), which